package com.cjt.chat.mapper;

import com.cjt.chat.pojo.Message;
import com.cjt.chat.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author cjt
 * @since 2024/3/27
 */
public interface MessageMapper {
    //保存聊天信息
    void saveMessage(List<Message> messageList);

    void saveMessageOne(Message message);

    //拉取聊天记录
    List<Message> getMessageHistory(@Param("friendId") Integer friendId, @Param("userId") Integer userId, @Param("page") Integer page);

    //获取所有聊天记录
    List<Message> queryAllMessageHistory(@Param("friendId") Integer friendId, @Param("userId") Integer userId);

    //查找与好友最新的聊天记录
    Message getNewMessage(@Param("userId") Integer userId, @Param("friendId") Integer friendId);

    //查询好友请求消息
    List<Message> getFriendRequest(@Param("userId") Integer userId);

    //根据messageId删除信息
    void deleteMessageByMessageId(@Param("messageId") Integer messageId);

    //将解除关系的好友之间的对话全部删除
    void deleteMessageByUserIdFriendId(@Param("friendId") Integer friendId, @Param("userId") Integer userId);

    //查询是否已经发出过好友申请
    Integer queryIsSendFriendRequest(@Param("userId") Integer userId, @Param("friendId") Integer friendId);

    //查询是否已经申请过加入群组
    Integer queryIsJoinGroupRequest(@Param("userId") Integer userId, @Param("groupId") Integer groupId);

    //查询申请入群消息
    List<Message> getJoinGroupRequest(@Param("groupIds") List<Integer> groupIds);

}
